package com.iplant.aps.service.apsenum.aps;

/**
 * 工位任务状态
 *
 * @author YouWang·Peng
 * 2020-1-19 11:09:21
 */
public enum APSTaskStatus {
    /**
     * 默认
     */
    Default(0, "默认"),
    /**
     * 保存
     */
    Saved(1, "保存"),
    /**
     * 下达
     */
    Issued(2, "下达"),
    /**
     * 派工
     */
    Confirm(3, "派工"),
    /**
     * 开工
     */
    Started(4, "开工"),
    /**
     * 完工
     */
    Done(5, "完工"),
    /**
     * 暂停
     */
    Suspend(6, "暂停"),
    /**
     * 终止(完全禁用)
     */
    Aborted(7, "终止"),
    /**
     * 提交
     */
    Submit(8, "提交"),
    /**
     * 待审批
     */
    ToAudit(9, "待审批"),
    /**
     * 已审批
     */
    Audited(10, "已审批"),
    /**
     * 已撤销
     */
    Canceled(11, "已撤销"),
    /**
     * 待互检
     */
    ToMutual(12, "待互检"),
    /**
     * 驳回
     */
    Rejected(13, "已驳回");

    private int value;
    private String label;

    APSTaskStatus(int value, String label) {
        this.value = value;
        this.label = label;
    }

    /**
     * 通过 value 的数值获取枚举实例
     */
    public static APSTaskStatus getEnumType(int val) {
        for (APSTaskStatus type : APSTaskStatus.values()) {
            if (type.getValue() == val) {
                return type;
            }
        }
        return Default;
    }

    /**
     * 通过 value 的数值获取枚举实例
     */
    public static APSTaskStatus getEnumType(String val) {
        for (APSTaskStatus type : APSTaskStatus.values()) {
            if (type.getLabel().equals(val)) {
                return type;
            }
        }
        return Default;
    }

    public int getValue() {
        return value;
    }

    public String getLabel() {
        return label;
    }
}
